In today's information age, computers and computer peripherals are frequently interconnected over a communication network. A typical communication net work includes a number of networking devices, such as switches and routers. These networking devices work together to route packets of information from a source device to one or more destination devices.
A typical networking device includes a central controller and a number of line cards. Each line card occupies a “slot” of the networking device, and supports one or more network interfaces (each referred to hereinafter as a “slot port”) through which the networking device communicates with various other devices, including other networking devices. Exemplary slot port types include Ethernet and SONET.
Within the networking device, the line cards are interconnected by a switching fabric. Each line card includes one or more fabric interfaces (each referred to hereinafter as a “fabric port”). Among other things, the fabric ports on a particular line card may be used for supporting different types of fabric services (e.g., unicast versus multicast fabric ports) and/or for supporting priority queues (e.g., high priority versus low priority fabric ports). The switching fabric routes information between the line cards, and more particularly between fabric ports.
Each line card includes logic for receiving, processing, and transmitting packets. Each line card can receive and transmit packets over its fabric port(s) and over its slot port(s). Each line card maintains a routing table that is typically distributed to all line cards by the central controller. The routing table includes a number of routing table entries, where each routing table entry indicates, among other things, the outgoing associated with a particular destination. An outgoing interface can be a slot port on the same line card as indicated by a slot port number, a different line card as indicated by a slot number, or a specific fabric port on a different line card as indicated by a slot number/fabric port number pair.
The line cards interoperate over the switching fabric in order to route packets. Specifically, a packet received by a particular line card (referred to hereinafter as the “incoming line card”) over a particular slot port may be forwarded to other slot ports on the same line card and/or to other line cards. The incoming line card uses its routing table to determine the outgoing interfaces for the packet, typically based upon a destination address or label in the packet, and forwards the packet over the outgoing interface(s).
In certain applications, two line cards are “bridged” so that all packets sent to a first line card (referred to hereinafter as a “working line card” or “WLC”) over the switching fabric are also sent to a second line card (referred to hereinafter as the “protection line card” or “PLC”). Among other things, a bridge may be used for redundancy or protection switching. In a typical embodiment, bridging is accomplished by modifying the routing table to include the PLC as an outgoing interface in all routing table entries having the WLC as an outgoing interface. For convenience, each such routing table entry is referred to hereinafter as a “bridged routing table entry.” With a bridge in place, any packet that is sent to the WLC is also sent to the PLC.
Data Path (DP) logic in the central controller typically maintains the IP/circuit (IP/CCT) handlers (HDLs) for each active slot port, and also maintains various processes for each active slot port. When a failure occurs that affects communication over a particular slot port (e.g., a link failure), the DP logic disables the slot port. Specifically, the DP logic tears down all routes that are associated with that slot port (i.e., all routes that include the slot port as an outgoing interface) and distributes an updated routing table to all line cards. The DP logic also removes any processes that are associated with the slot port.
When bridging is used, it is important for routes associated with the WLC to remain active even after a failure affecting communication over the WLC. This is because those routes are used to establish or maintain the bridge between the WLC and the PLC. Unfortunately, when the DP logic detects a failure affecting communication over the WLC, the DP logic tears down all routes associated with the WLC. This either destroys an existing bridge between the WLC and PLC or prevents a bridge from being established between the WLC and the PLC.